//截取？后的内容返回一个数组对象
function queryString(keyValue){//传入需要拿的数据名
    var search = location.search.replace('?','');//拿到地址上的？后的内容
    var list = search.split('&');//以&为界，分出一个数组
    list = list.map((content) => {//循环遍历，操作数组中的数据
        var key = content.split('=')[0];//以此条数据的=为界，分出两边，取第一个设置为键名
        var value= content.split('=')[1];//取第二个设置为键值
        return { key , value } //输出一个对象
    })
    var [obj] = list.filter(({key}) => key === keyValue);//以形参为过滤条件，输出需要的值
    return obj ? obj.value : '';
}

//截取？后的内容返回数组
function queryArr() {
    var str = location.search.substring(1, location.search.length)
    str = str.split('&')
    // console.log(str);
    var res = str.reduce((total, value) => {
        total.push(value.split('=')[1]);
        return total
    }, [])
    // console.log(res);
    return res;
}

//封装ajax
function ajax({ path, success, data = {}, type = 'get', dataType = 'json'}){
    var parnms = '';
    for(var key in data){//传入的对象用for in循环拿到的key为键名！！！
        parnms += `${key}=${data[key]}&`;//拼串 键名 = 键值(对象[键名]) &
    }//将要传输的数据拼成gid=1&username=wjp&的形式
    parnms = parnms.substring(0,parnms.length-1);//拼串之后，尾部多一个&，由此去掉
    var xhr = new XMLHttpRequest();//声明ajax的核心代码构造函数,确认事件(建大炮)
    if(type.toLowerCase() === 'post'){//判断输送形式为post
        xhr.open(type,path);//精准定位(瞄准)
        xhr.setRequestHeader('content-type','application/x-www-form=urlencoded')//post特殊写法，请求头
        xhr.send(parnms);//发送请求(发射) 此处也是post的特殊之处，()中要把发送对象写上
    }else{//默认get请求方式
        xhr.open(type,`${path}?${parnms}`);//此处是get请求的特殊之处，网址上有？后的内容
        xhr.send();
    }
    xhr.onreadystatechange = function(){//监听请求状态(看有没有打中)
        if(xhr.readyState == 4 && xhr.status == 200){
            var data = xhr.responseText;
            if(dataType === 'json'){
                data = JSON.parse(data);//将输出内容转为js字符串
            }
            success && success(data);//设置成功回调函数，以便还有别的要求
        }
    }
}

//设置cookie
function setCookie(name, content, iDay = 7){
    //设置过期时间
     var date = new Date();//获取当前时间
     date.setDate(date.getDate() + iDay);//将时间设定为传入的时间
     date.setHours(date.getHours() - 8);//cookie的特殊之处，会多出8个小时
     //设置
     document.cookie = `${encodeURIComponent(name)}=${encodeURIComponent(content)};path=/;expires=${date}`
}//cookie的名字=内容;存储地址;过期时间

//删除cookie
function removeCookie(name){
    setCookie(name,'',-1);
}//重新设置一遍这个cookie覆盖之前，让他直接过期，做到删除

//获取cookie对象
function getAllCookie(){
    var cookie = document.cookie;//拿到所有的数据
    var list = cookie.split('; ');//把数据以;分界，拿到一个数组
    return list.reduce(function(total,value){//用reduce循环遍历这个数组，操作数据
        total[value.split('=')[0]] = value.split('=')[1]//这里是将这个数组拼成对象输出
        return total;
    },{});
}

//获取特定的cookie
function getCookie(name){
    return getAllCookie()[encodeURIComponent(name)] ? decodeURIComponent(getAllCookie()[encodeURIComponent(name)]) : '' ;
}